
const path = require('path');
const fs = require('fs');
const { RawSource } = require('webpack-sources');
module.exports = class PluginDemo {
  apply(compiler){
    console.log("complier生成");
     //在这里注册事件，类似于window.onload  $(function(){})
    // console.log(complier)
    //   compiler.hooks.事件名称.事件类型(name, function(compilation){
    //     //事件处理函数
    // })
    //输出 asset 到 output 目录之前执行。这个钩子 不会 被复制到子编译器。 AsyncSeriesHook
    compiler.hooks.emit.tap('MyPlugin', compilation => {
      process.noDeprecation = true;
      let fileList = []
      const outputPath = compilation.options.output.path;
      const assetName = 'my-custom-file.txt';
      let content = 'This is my custom file';
      for(let key in compilation.assets){
        content = `【${key}】
        大小:${compilation.assets[key].size()/1000}KB`
        fileList.push(content)
      }
      let str = fileList.join("\n\n");
      // 创建一个 Source 对象
      const source = new RawSource(str);
      // 输出文件到目标路径
      compilation.emitAsset(assetName, source, {
        // 设置输出文件的 MIME 类型为文本
        contentType: 'text/plain',
        // 设置文件是否进行 Gzip 压缩
        compress: true,
      });
    });
  }
}
